#ifndef FILEHANDLER_H
#define FILEHANDLER_H

#include <algorithm>//Para usar "swap" e "copy".
#include <cstddef>  //Para usar "size_t".
#include <fstream>  //Para ler/escrever arquivos.
#include <string>
#include <list>
#include <iostream>
using namespace std;

class FileHandler
{
    private:
        string* texto;
        size_t tamanho;
        void inicializador();

    public:
        FileHandler();
        // Construtor-cópia:
        FileHandler(const FileHandler& fh);
        ~FileHandler();

        // Trocar os valores dos atributos de dois objetos:
        friend void trocar_atributos(FileHandler& pri, FileHandler& seg);
        // Operador de atribuição da classe:
        FileHandler& operator=(FileHandler fh);

        string* get_texto();
        size_t get_tamanho();

        bool ler(const char *arquivo_nome);
        bool escrever(const char *arquivo_nome, string* txt, size_t tam);
};

#endif // FILEHANDLER_H
